Allow global setting of random number seed + better RepartitionedHybridTopologyFactory test #808
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now test_RepartitionedHybridTopologyFactory_energies fails sometimes depending on which amino is selected and the order that torsions are mapped. You can test this by running
while CUDA_VISIBLE_DEVICES= pytest -k test_RepartitionedHybridTopologyFactory_energies; do echo "works"; done
and eventually the test will fail. I looked at the output and traced the difference between a test passing and a test failing to atom index proposal order, which is random and we currently don't support setting the seed.There also is some randomness from the amino that is selected to mutate. I think instead of mutating a random amino for testing, we should mutate all of them. I will check to see how much time this adds to the test.
Some ideas:
Set random number seed in a util file, and import that generator in tests that need it instead of doing
rng = np.random.RandomState(42)
everywhere